Skip to content

chore: change snapshot package#35867

Merged
KelvinOm merged 19 commits intoreleasefrom
fix/anvil-snapshots
Sep 12, 2024
Merged

chore: change snapshot package#35867
KelvinOm merged 19 commits intoreleasefrom
fix/anvil-snapshots

Conversation

@KelvinOm
Copy link
Collaborator

@KelvinOm KelvinOm commented Aug 23, 2024

/ok-to-test tags="@tag.All"

Description

Tip

Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team).

Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR.

Fixes #Issue Number
or
Fixes Issue URL

Warning

If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.

Automation

🔍 Cypress test results

Tip

🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/10815637874
Commit: 54937a7
Cypress dashboard.
Tags: @tag.All
Spec:


Wed, 11 Sep 2024 17:30:00 UTC

Communication

Should the DevRel and Marketing teams inform users about this change?

  • Yes
  • No

Summary by CodeRabbit

  • New Features

    • Added support for visual regression testing through new tagging in various test suites.
    • Integrated a new image snapshot plugin to enhance testing capabilities.
  • Bug Fixes

    • Removed outdated image snapshot assertions to streamline testing processes.
  • Documentation

    • Updated tags in multiple test suites to improve organization and clarity regarding visual testing.
  • Chores

    • Upgraded Node.js version in the Cypress Dockerfile for improved performance and compatibility.
    • Simplified Cypress plugin configuration by removing unnecessary functions and enhancing browser compatibility.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 23, 2024

Walkthrough

This pull request introduces several modifications to the Cypress testing framework, primarily focusing on enhancing visual testing capabilities. Key changes include the integration of an image snapshot plugin, updates to Node.js version in the Dockerfile, and the addition of visual tags to various test suites. Additionally, some visual assertions have been removed, indicating a potential shift in testing strategy. Overall, the changes aim to improve the organization and categorization of tests while streamlining the testing process.

Changes

File Path Change Summary
app/client/cypress.config.ts Added image snapshot plugin configuration.
app/client/cypress/Dockerfile Updated Node.js version from 20.11.1 to 20.13.1.
app/client/cypress/e2e/Regression/ClientSide/Anvil/*.ts Added @tag.Visual to various test suites for visual testing categorization.
app/client/cypress/e2e/Regression/ClientSide/VisualTests/*.js Removed specific image snapshot assertions, indicating a shift in visual testing strategy.
app/client/cypress/plugins/index.js Removed image snapshot plugin function and simplified browser launch conditions.

Possibly related PRs

Suggested labels

Task, ok-to-test, Query & JS Pod, Integrations Product, Stability Pod

Poem

In the realm of tests where widgets play,
Visual tags now brighten the way.
Snapshots removed, yet clarity grows,
A streamlined path where confidence flows.
With Cypress we dance, in code we trust,
Enhancing our tests, it's a must! 🎉


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@KelvinOm KelvinOm added the ok-to-test Required label for CI label Aug 23, 2024
@github-actions github-actions bot added the skip-changelog Adding this label to a PR prevents it from being listed in the changelog label Aug 23, 2024
@KelvinOm KelvinOm force-pushed the fix/anvil-snapshots branch 3 times, most recently from 339ebf6 to eff3546 Compare August 23, 2024 17:05
@jsartisan
Copy link
Contributor

/build-deploy-preview skip-tests=true

@github-actions
Copy link

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/10595534610.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 35867.
recreate: .

@github-actions
Copy link

Deploy-Preview-URL: https://ce-35867.dp.appsmith.com

@jsartisan jsartisan added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Aug 30, 2024
@jsartisan
Copy link
Contributor

/build-deploy-preview skip-tests=true

@github-actions
Copy link

github-actions bot commented Sep 2, 2024

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/10661081507.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 35867.
recreate: .

@github-actions
Copy link

github-actions bot commented Sep 2, 2024

Deploy-Preview-URL: https://ce-35867.dp.appsmith.com

@jsartisan jsartisan added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Sep 2, 2024
@jsartisan
Copy link
Contributor

/ci-test-limit

@github-actions
Copy link

github-actions bot commented Sep 2, 2024

@github-actions
Copy link

github-actions bot commented Sep 2, 2024

Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/10666132105.
Cypress dashboard url: Click here!
All cypress tests have passed 🎉🎉🎉

@KelvinOm KelvinOm added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Sep 10, 2024
@KelvinOm KelvinOm added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Sep 11, 2024
@KelvinOm KelvinOm force-pushed the fix/anvil-snapshots branch 3 times, most recently from f83e365 to 0984cd4 Compare September 11, 2024 11:48
@KelvinOm KelvinOm marked this pull request as ready for review September 11, 2024 16:21
@KelvinOm KelvinOm added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Sep 11, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Outside diff range and nitpick comments (1)
app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Chart_widget_spec_1.ts (1)

13-13: Great job categorizing the visual tests! Consider adding a comment to clarify the reason for removing the image snapshot assertions.

The addition of the @tag.Visual tag is an excellent way to categorize the visual tests. The tests are following several best practices, such as:

  • Using data-* attributes for selectors
  • Avoiding the use of cy.wait, cy.pause, and agHelper.sleep()
  • Performing logins, logouts, and signups via API
  • Not using it.only, after, or aftereach
  • Using multiple assertions for expect statements
  • Avoiding the use of strings for assertions

However, I noticed that the image snapshot assertions have been removed. If this is intentional, consider adding a comment to clarify the reason for their removal. If not, make sure to add them back to ensure comprehensive visual testing coverage.

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 228af86 and 54937a7.

Files ignored due to path filters (267)
  • app/client/cypress/snapshots/3DCustomECharts.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchGroupWidgetSnapshot_spec.ts/anvilSwitchGroupWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilSwitchWidgetSnapshot_spec.ts/anvilSwitchWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilTableWidgetSnapshot_spec.ts/anvilTableWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilToolbarButtonWidgetSnapshot_spec.ts/anvilToolbarButtonWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AnvilZoneSectionWidgetSnapshot_spec.ts/anvilZoneSectionWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AppPageLayout_spec.js/EmptyApp.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AppPageLayout_spec.js/Profile.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AppPageLayout_spec.js/apppage.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AppPageLayout_spec.js/emptyAppBuilder.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AppPageLayout_spec.js/loginpage.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/AppPageLayout_spec.js/quickPageWizard.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/CameraWidgetSpec.ts/cameraImageMirroredScreen.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/CameraWidgetSpec.ts/cameraImagePreviewScreen.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/CameraWidgetSpec.ts/cameraImageSavedScreen.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/CameraWidgetSpec.ts/cameraImageScreen.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/CameraWidgetSpec.ts/cameraVideoMirroredScreen.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/CameraWidgetSpec.ts/cameraVideoPreviewScreen.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/CameraWidgetSpec.ts/cameraVideoSavedScreen.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/CameraWidgetSpec.ts/cameraVideoScreen.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Custom3DChartSpec.ts/2DCustomECharts.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Custom3DChartSpec.ts/3DCustomECharts-2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Custom3DChartSpec.ts/3DCustomECharts.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Custom3DChartSpec.ts/FusionCharts.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/DatasourcePageLayout_spec.js/emptydatasourcepage.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Expired Token.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorComment_spec.js/jsObjAfterCommenting1.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorComment_spec.js/jsObjBeforeCommenting1.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/formattedJSONBodyAfterSave.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjAfterGoLineStartSmart5.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjAfterPrettify1.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjAfterPrettify2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjAfterPrettify3.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjAfterPrettify4.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjAfterPrettify4_1.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjAfterPrettify6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjAfterPrettify7.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjBeforeGoLineStartSmart5.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjBeforePrettify1.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjBeforePrettify2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjBeforePrettify3.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjBeforePrettify4.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjBeforePrettify6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorIndent_spec.js/jsObjBeforePrettify7.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorSaveAndAutoIndent_spec.js/jsObjAfterSaveAndPrettify.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/JSEditorSaveAndAutoIndent_spec.js/jsObjBeforeSaveAndPrettify.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapChartWithBorderRadius.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapChartWithBoxShadow.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapChartWithColorRange.snag.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapchartsimple.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithafrica.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithantarctica.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithasia.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithcustomdata.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithcustomtitle.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwitheurope.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithnorthamerica.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithoceania.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithshowlabelsoff.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithshowlableson.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithsouthamerica.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithusa.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithvisibilityoff.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithvisibilityon.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapChart_Spec.ts/mapwithworld.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithBorderRadius.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithBoxShadow.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithDefaultMarker1.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithDefaultMarker2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithDefaultZoomIn.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithDefaultZoomOut.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithEnableSearchLocationOff.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithEnablingClusteringON.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithEnablingClusteringOff.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithInitalLocation.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithMapNMarkerCenteringOff.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithPickLocationOff.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithVisibilityOff.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithVisibilityOnWithJS.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapWithinItalLocationAsJS.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/MapWidget_Spec.ts/mapsimple.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/AnvilModal_spec.ts/anvilModalLargeSize.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/AnvilModal_spec.ts/anvilModalMediumSize.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/AnvilModal_spec.ts/anvilModalSmallSize.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilButtonWidgetSnapshot_spec.ts/anvilButtonWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts/anvilCheckboxGroupWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts/anvilCheckboxWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts/anvilCurrencyInputWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts/anvilHeadingWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts/anvilIconButtonWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInlineButtonWidgetSnapshot_spec.ts/anvilInlineButtonWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts/anvilInputWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts/anvilParagraphWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts/anvilPhoneInputWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvas.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetCanvasDark.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeploy.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployIpad2.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployIphone6.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetDeployMacbook13.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts/anvilRadioGroupWidgetPreview.snap.png is excluded by !**/*.png
  • app/client/cypress/snapshots/Regression/ClientSide/Anvil/Widgets/AnvilStatsWidgetSnapshot_spec.ts/anvilStatsWidgetCanvas.snap.png is excluded by !**/*.png
Files selected for processing (33)
  • app/client/cypress.config.ts (2 hunks)
  • app/client/cypress/Dockerfile (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/AnvilModal_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilButtonWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInlineButtonWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilStatsWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchGroupWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilTableWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilToolbarButtonWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilZoneSectionWidgetSnapshot_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/FormLogin/EmailVerfication_spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/VisualTests/DatasourcePageLayout_spec.js (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/VisualTests/JSEditorIndent_spec.js (4 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/VisualTests/JSEditorSaveAndAutoIndent_spec.js (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/VisualTests/WidgetsLayout_spec.js (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Widgets/Camera/CameraImage_Spec.ts (3 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Widgets/Camera/CameraVideo_Spec.ts (5 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Chart_widget_spec_1.ts (2 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Chart_widget_spec_2.ts (3 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Custom3DChartSpec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Widgets/Others/MapChart_Spec.ts (1 hunks)
  • app/client/cypress/e2e/Regression/ClientSide/Widgets/Others/MapWidget_Spec.ts (1 hunks)
  • app/client/cypress/plugins/index.js (6 hunks)
Files skipped from review due to trivial changes (14)
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/AnvilModal_spec.ts
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilButtonWidgetSnapshot_spec.ts
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilHeadingWidgetSnapshot_spec.ts
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInlineButtonWidgetSnapshot_spec.ts
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilToolbarButtonWidgetSnapshot_spec.ts
  • app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilZoneSectionWidgetSnapshot_spec.ts
  • app/client/cypress/e2e/Regression/ClientSide/VisualTests/DatasourcePageLayout_spec.js
  • app/client/cypress/e2e/Regression/ClientSide/VisualTests/JSEditorIndent_spec.js
  • app/client/cypress/e2e/Regression/ClientSide/VisualTests/WidgetsLayout_spec.js
  • app/client/cypress/e2e/Regression/ClientSide/Widgets/Camera/CameraImage_Spec.ts
  • app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Custom3DChartSpec.ts
  • app/client/cypress/e2e/Regression/ClientSide/Widgets/Others/MapChart_Spec.ts
Additional context used
Path-based instructions (17)
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilStatsWidgetSnapshot_spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilTableWidgetSnapshot_spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchWidgetSnapshot_spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchGroupWidgetSnapshot_spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/VisualTests/JSEditorSaveAndAutoIndent_spec.js (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Chart_widget_spec_1.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Chart_widget_spec_2.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/FormLogin/EmailVerfication_spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Widgets/Camera/CameraVideo_Spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/plugins/index.js (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Widgets/Others/MapWidget_Spec.ts (1)

Pattern app/client/cypress/**/**.*: Review the following e2e test code written using the Cypress test library. Ensure that:

  • Follow best practices for Cypress code and e2e automation.
  • Avoid using cy.wait in code.
  • Avoid using cy.pause in code.
  • Avoid using agHelper.sleep().
  • Use locator variables for locators and do not use plain strings.
  • Use data-* attributes for selectors.
  • Avoid Xpaths, Attributes and CSS path.
  • Avoid selectors like .btn.submit or button[type=submit].
  • Perform logins via API with LoginFromAPI.
  • Perform logout via API with LogOutviaAPI.
  • Perform signup via API with SignupFromAPI.
  • Avoid using it.only.
  • Avoid using after and aftereach in test cases.
  • Use multiple assertions for expect statements.
  • Avoid using strings for assertions.
  • Do not use duplicate filenames even with different paths.
  • Avoid using agHelper.Sleep, this.Sleep in any file in code.
Additional comments not posted (33)
app/client/cypress/Dockerfile (1)

3-3: The Node.js version upgrade looks good! Just make sure to verify compatibility.

Upgrading Node.js to version 20.13.1 is a sensible change. It's important to take advantage of the latest features, performance improvements, and bug fixes that come with newer versions.

However, before merging this change, I recommend thoroughly testing the application to ensure compatibility with the updated Node.js version. Pay special attention to any third-party dependencies that might be sensitive to Node.js version changes.

If everything checks out, then this change should be good to go! Let me know if you encounter any issues during testing and I'll be happy to help troubleshoot.

app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilStatsWidgetSnapshot_spec.ts (1)

9-9: Great job adding the @tag.Visual tag! 👍

Adding the @tag.Visual tag is an excellent way to categorize visual regression tests. This tag can be used to selectively run visual tests or exclude them from regular test runs, providing more flexibility in test execution.

Keep up the good work in organizing and categorizing the tests!

app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilTableWidgetSnapshot_spec.ts (1)

9-9: Great job adding the @tag.Visual tag! 👍

Adding the @tag.Visual tag to the describe block is an excellent way to categorize tests related to the visual aspects of the Anvil Table Widget. This tag will help in organizing and running tests that focus on visual regression testing.

By categorizing tests with appropriate tags, you can:

  • Easily identify and run specific subsets of tests.
  • Improve test organization and maintainability.
  • Enhance the overall testing process.

Keep up the good work in categorizing tests effectively! 🌟

app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchWidgetSnapshot_spec.ts (1)

9-9: Great job adding the @tag.Visual tag to categorize visual tests! 👍

Adding the @tag.Visual tag to the existing @tag.Anvil tag is a good practice for organizing and filtering tests based on their purpose. This change will make it easier to run specific subsets of tests, such as all visual tests or all Anvil tests.

Here are a few more tips for using tags effectively:

  1. Use descriptive tag names that clearly convey the purpose or category of the tests.
  2. Be consistent with tag naming conventions across the test suite.
  3. Use tags to group tests by features, functionality, or test types (e.g., @smoke, @regression, @performance).
  4. Leverage tags to selectively run or exclude tests during different stages of the testing process.

Keep up the good work in improving the organization and maintainability of the test suite! 🚀

app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxWidgetSnapshot_spec.ts (1)

9-9: Great job categorizing the tests! The new tag looks good.

Adding the @tag.Visual tag to categorize these tests as visual tests is a good practice. It will help in filtering and running specific subsets of tests based on their purpose.

The change follows the existing pattern of using tags for test categorization. Keep up the good work!

app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts (1)

9-9: Great job adding the @tag.Visual tag!

Adding the @tag.Visual tag to the test suite is an excellent way to categorize and organize visual tests. This tag can be used to selectively run or filter visual tests, making it easier to manage and maintain the test suite.

Keep up the good work!

app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts (1)

9-9: Great job adding the @tag.Visual tag to categorize the test suite! 👍

Adding tags to the describe block is an excellent way to organize tests based on their purpose. It allows running specific subsets of tests easily.

The @tag.Visual tag clearly indicates that this test suite focuses on visual testing of the Anvil Icon Button Widget. Keep up the good work!

app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilRadioGroupWidgetSnapshot_spec.ts (1)

9-9: Great job adding the @tag.Visual tag to categorize the tests!

Adding the @tag.Visual tag to the existing tags is a good practice. It enhances the categorization of the tests, indicating that they involve visual aspects alongside the Anvil functionality.

This change aligns with the best practice of using tags to categorize tests. It may allow for more targeted testing strategies that focus on visual validation alongside functional testing.

Keep up the good work!

app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchGroupWidgetSnapshot_spec.ts (1)

9-9: Great job adding the @tag.Visual tag to categorize the test suite! 👍

Adding tags to the describe block is an excellent way to organize and filter tests based on their purpose or category. This change follows the Cypress best practice of using tags to categorize tests.

The @tag.Visual tag clearly indicates that this test suite pertains to visual testing, in addition to being an Anvil test. This will make it easier to run specific subsets of tests and understand the purpose of each test suite.

Keep up the good work! 🌟

app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts (1)

9-9: Great job adding the @tag.Visual tag to categorize the visual tests! 👍

Adding the @tag.Visual tag to the existing @tag.Anvil tag is an excellent way to enhance the categorization of the tests and indicate that the test suite now includes visual testing aspects. This change aligns with the best practices for organizing and tagging tests in Cypress.

Here are a few additional tips to make the most of tags:

  1. Use descriptive and meaningful tag names that clearly convey the purpose or category of the tests.
  2. Be consistent with the naming convention for tags across your test suites.
  3. Consider using hierarchical tags (e.g., @tag.Anvil.Visual) to create a more granular categorization if needed.
  4. Leverage tags to selectively run or exclude specific tests or test suites during the testing process.

Keep up the great work in improving the testing framework! Let me know if you have any further questions.

app/client/cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts (1)

9-9: Great job adding the @tag.Visual tag! 👍

Adding the @tag.Visual tag to the test suite is an excellent way to categorize tests that focus on visual aspects. This practice allows for more targeted test execution and filtering based on the purpose of the tests.

It's good to see that you have kept the existing @tag.Anvil tag as well, as it is still relevant for identifying tests related to the Anvil functionality.

Keep up the good work in organizing and categorizing your tests! 🌟

app/client/cypress.config.ts (2)

2-2: Great job adding the import statement for the image snapshot plugin! 👍

The import statement is correctly written and is required for using the image snapshot plugin. The code changes are approved.


36-36: The existing comments on this line are still valid and provide sufficient context. The code change is correct and no further comments are necessary.

app/client/cypress/e2e/Regression/ClientSide/VisualTests/JSEditorSaveAndAutoIndent_spec.js (1)

Line range hint 1-1: Verify the impact of removing the visual snapshot assertions.

Dear student, I noticed that you have removed two matchImageSnapshot assertions from the myFun2 function. These assertions were capturing the visual state of the CodeMirror editor after specific user interactions:

  1. After saving the editor content.
  2. After clicking inside the editor to verify that the prettification process did not revert any changes.

Removing these assertions may impact the reliability of the test in ensuring that the editor behaves as expected following user interactions. The test may no longer validate the visual consistency of the editor's output after these actions.

Please verify the impact of removing these assertions on the overall test coverage and reliability. Consider the following:

  • Are there alternative ways to validate the editor's behavior after saving and prettification?
  • Are there any potential edge cases or scenarios that may be missed without these visual assertions?

If the removal of these assertions is intentional and does not compromise the test's effectiveness, please provide a brief explanation of the reasoning behind this change.

If you need any assistance in finding alternative approaches or improving the test coverage, please let me know. I'm here to help you ensure the quality and reliability of your tests.

app/client/cypress/e2e/Regression/ClientSide/Widgets/Chart/Chart_widget_spec_2.ts (4)

Line range hint 18-28: Great work on this test case!

The test case is well-structured and follows the best practices for Cypress code and e2e automation. It selects the "Pie chart" type, updates the chart title, deploys the app, navigates back to the editor, and selects the chart widget. Keep up the good work!


Line range hint 30-39: Excellent job on this test case!

The test case is well-structured and follows the best practices for Cypress code and e2e automation. It selects the "Column chart" type, deploys the app, navigates back to the editor, selects the chart widget, and toggles the "Adaptive axis" property. Your attention to detail is commendable!


41-54: Fantastic work on this test case!

The test case is well-structured and follows the best practices for Cypress code and e2e automation. It selects the "Line chart" type, deploys the app, navigates back to the editor, selects the chart widget, and tests different "x-axis label orientation" options. Your thoroughness in testing different scenarios is impressive!


Line range hint 56-75: Excellent work on this test case!

The test case is well-structured and follows the best practices for Cypress code and e2e automation. It tests the absence of the "x-axis label orientation" property in "Pie chart", "Bar chart", and "Custom Fusion Charts (deprecated)" types, and also tests the presence of the property in the "Column chart" type. Your attention to detail in testing different chart types is commendable!

app/client/cypress/e2e/Regression/ClientSide/FormLogin/EmailVerfication_spec.ts (1)

4-4: Great work on categorizing the test suite for visual testing! 👍

Adding the { tags: ["@tag.Visual"] } configuration to the describe block is an effective way to organize and categorize the tests for visual testing purposes. This change aligns with the best practices for test organization and can help streamline the testing process by allowing the tests to be selectively run based on their tags.

It's important to note that while this change enhances the metadata associated with the test suite, it does not alter the core functionality or logic of the individual test cases. The tests themselves remain unchanged, ensuring that the existing test coverage is maintained.

Keep up the good work in improving the organization and categorization of the tests! 🌟

app/client/cypress/e2e/Regression/ClientSide/Widgets/Camera/CameraVideo_Spec.ts (7)

17-17: Great job adding the "@tag.Visual" tag!

Adding the "@tag.Visual" tag is an excellent way to categorize visual tests. This will make it easier to run and manage visual tests separately.


Line range hint 25-49: Excellent test case for the visible property!

This test case does a great job of verifying the visible property of the camera widget in video mode. It uses JS context to toggle the visibility and validates the widget's presence in the deployed app, which is a thorough way to test this functionality.


Line range hint 51-67: Great test case for the disabled property!

This test case effectively verifies the disabled property of the camera widget in video mode. It uses JS context to toggle the disabled state and validates the widget's disabled attribute in the deployed app, which is a comprehensive way to test this functionality.


Line range hint 69-78: Nice test case for the mirrored property!

This test case does a good job of verifying the mirrored property of the camera widget in video mode. It uses JS context to toggle the mirrored state, which is an effective way to test this functionality.


Line range hint 80-95: Excellent test case for the onVideoSave event!

This test case thoroughly verifies the onVideoSave event of the camera widget in video mode. It uses JS context to show an alert on video save and selects the download action to download the video blob, which is a comprehensive way to test this functionality.


Line range hint 97-132: Great end-to-end test case for the camera widget's video functionality!

This test case does an excellent job of testing the end-to-end flow of video capture, preview, save, refresh, and download in the camera widget. It also validates the presence of icons at each stage, which is a thorough way to test the entire video capture and management flow.


Line range hint 134-153: Excellent test case for capturing multiple videos!

This test case effectively tests the capture of multiple videos and verifies that previous captures are not overwritten. It downloads and verifies the presence of multiple video files, which is a comprehensive way to ensure that the camera widget can handle multiple video captures without overwriting previous ones.

app/client/cypress/plugins/index.js (2)

58-58: Great work on enhancing browser compatibility! 👍

By expanding the conditional check to include both "chrome" and "chromium", you've ensured that the launch options are applied consistently across Chromium-based browsers. This consolidation simplifies the configuration and improves the maintainability of the code.

Keep in mind that this change may affect how tests are executed and reported for Chromium-based browsers. Make sure to thoroughly test the functionality and verify that the desired behavior is achieved across all supported browsers.


85-85: The past review comment is no longer applicable as the code it refers to has been removed in the current changes.

app/client/cypress/e2e/Regression/ClientSide/Widgets/Others/MapWidget_Spec.ts (5)

36-58: Great work on this test suite!

The test suite is well-structured and follows the best practices for Cypress tests. It is effectively verifying the Map Widget with initial location by dragging the widget, deploying the app, and verifying the snapshot. The test also updates the initial location and verifies the changes.

Keep up the good work!


60-80: Excellent test suite for verifying default markers!

This test suite is effectively verifying the Map Widget with default markers. It covers both the single marker and multiple markers scenarios by updating the default markers, deploying the app, and verifying the snapshot for each case.

The test is well-structured and follows the best practices for Cypress tests. Good job!


82-96: Great test suite for verifying zoom levels!

This test suite is effectively verifying the Map Widget with different zoom levels. It covers both the zoom-out and zoom-in scenarios by setting the zoom level, deploying the app, and verifying the snapshot for each case.

The test is well-structured and follows the best practices for Cypress tests. Nice work!


98-149: Comprehensive test suites for verifying general settings!

These test suites are thoroughly verifying the Map Widget with different general settings. They cover a wide range of scenarios by toggling various properties like visibility, enable pick location, map & marker centering, enable clustering, and enable search location.

The tests are well-structured and follow the best practices for Cypress tests. They are deploying the app and verifying the snapshot for each case, which ensures the correctness of the widget's behavior.

Excellent work on these comprehensive test suites!


151-169: Great test suite for verifying style changes!

This test suite is effectively verifying the style changes of the Map Widget. It covers the border radius and box shadow scenarios by changing the respective properties, deploying the app, and verifying the snapshot for each case.

The test is well-structured and follows the best practices for Cypress tests. Good job on verifying the visual aspects of the widget!

@KelvinOm KelvinOm merged commit 7ba06c8 into release Sep 12, 2024
@KelvinOm KelvinOm deleted the fix/anvil-snapshots branch September 12, 2024 08:09
@coderabbitai coderabbitai bot mentioned this pull request Sep 19, 2024
2 tasks
Shivam-z pushed a commit to Shivam-z/appsmith that referenced this pull request Sep 26, 2024
/ok-to-test tags="@tag.All"

## Description
> [!TIP]  
> _Add a TL;DR when the description is longer than 500 words or
extremely technical (helps the content, marketing, and DevRel team)._
>
> _Please also include relevant motivation and context. List any
dependencies that are required for this change. Add links to Notion,
Figma or any other documents that might be relevant to the PR._


Fixes #`Issue Number`  
_or_  
Fixes `Issue URL`
> [!WARNING]  
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._

## Automation

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/10815637874>
> Commit: 54937a7
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10815637874&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Wed, 11 Sep 2024 17:30:00 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Added support for visual regression testing through new tagging in
various test suites.
- Integrated a new image snapshot plugin to enhance testing
capabilities.

- **Bug Fixes**
- Removed outdated image snapshot assertions to streamline testing
processes.

- **Documentation**
- Updated tags in multiple test suites to improve organization and
clarity regarding visual testing.

- **Chores**
- Upgraded Node.js version in the Cypress Dockerfile for improved
performance and compatibility.
- Simplified Cypress plugin configuration by removing unnecessary
functions and enhancing browser compatibility.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro-2.local>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ok-to-test Required label for CI skip-changelog Adding this label to a PR prevents it from being listed in the changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants